/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.carrito.jsf.bo;

import com.carrito.jdbc.dao.ImplCliente;
import com.carrito.jsf.bean.BeanCliente;
import com.carrito.jsf.persistence.Cliente;
import java.util.ArrayList;
import java.util.List;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;

/**
 *
 * @author oscarc
 */
public class ClienteImplBO implements ClienteBO {

    private static final Logger logger = Logger.getLogger(ClienteImplBO.class);
    
    @Autowired
    private ImplCliente clienteDAO;//mediante inyeccion de dependencias

    @Override
    public void insert(BeanCliente obj) {
        logger.info("Ingreso metodo insert - ClienteImplBO");
        Cliente cliente = new Cliente();
        cliente.setCodigo(obj.getCodigo());
        cliente.setNombre(obj.getNombre());
        cliente.setDocumento(obj.getDocumento());
        cliente.setDireccion(obj.getDireccion());
        cliente.setTelefono(obj.getTelefono());
        cliente.setCelular(obj.getCelular());
        cliente.setTipo(obj.getTipo());
        cliente.setIdentificador(obj.getIdentificador());
        cliente.setEmail(obj.getEmail());
        cliente.setCiudad(obj.getCiudad());
        getClienteDAO().insert(cliente);//llama metodo insertar
    }

    @Override
    public void delete(BeanCliente obj) {
        logger.info("Ingreso metodo delete - ClienteImplBO");
        logger.info("CODIGO " + obj.getCodigo());
        Cliente cliente = new Cliente();
        cliente.setCodigo(obj.getCodigo());
        cliente.setNombre(obj.getNombre());
        cliente.setDocumento(obj.getDocumento());
        cliente.setDireccion(obj.getDireccion());
        cliente.setTelefono(obj.getTelefono());
        cliente.setCelular(obj.getCelular());
        cliente.setTipo(obj.getTipo());
        cliente.setEmail(obj.getEmail());
        cliente.setIdentificador(obj.getIdentificador());
        cliente.setCiudad(obj.getCiudad());
        getClienteDAO().delete(cliente);
    }

    @Override
    public void update(BeanCliente obj) {
        logger.info("Ingreso metodo update - ClienteImplBO");
        Cliente cliente = new Cliente();
        cliente.setCodigo(obj.getCodigo());
        cliente.setNombre(obj.getNombre());
        cliente.setDocumento(obj.getDocumento());
        cliente.setDireccion(obj.getDireccion());
        cliente.setTelefono(obj.getTelefono());
        cliente.setCelular(obj.getCelular());
        cliente.setTipo(obj.getTipo());
        cliente.setCiudad(obj.getCiudad());
        cliente.setEmail(obj.getEmail());
        cliente.setIdentificador(obj.getIdentificador());
        getClienteDAO().update(cliente);
    }

    @Override
    public List<BeanCliente> getAll() {
        logger.info("Ingreso metodo getAll - ClienteImplBO");
        List<BeanCliente> lista = new ArrayList<BeanCliente>();
        for (Cliente obj : getClienteDAO().getAll()) {
            BeanCliente bean = new BeanCliente();
            bean.setCodigo(obj.getCodigo());
            bean.setNombre(obj.getNombre());
            bean.setDocumento(obj.getDocumento());
            bean.setCelular(obj.getCelular());
            bean.setTelefono(obj.getTelefono());
            bean.setEmail(obj.getEmail());
            bean.setDireccion(obj.getDireccion());
            bean.setEmail(obj.getEmail());
            bean.setTipo(obj.getTipo());
            bean.setCiudad(obj.getCiudad());
            bean.setIdentificador(obj.getIdentificador());
            lista.add(bean);
        }
        return lista;
    }

    public ImplCliente getClienteDAO() {
        return clienteDAO;
    }

    public void setClienteDAO(ImplCliente clienteDAO) {
        this.clienteDAO = clienteDAO;
    }
}
